package springfixture;

import java.beans.PropertyEditor;

import org.springframework.beans.BeanWrapperImpl;

/*
 * Copyright 2002-2005 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
public class FitBeanWrapperImpl extends BeanWrapperImpl {

    public FitBeanWrapperImpl() {
        super();
    }

    public FitBeanWrapperImpl(boolean registerDefaultEditors) {
        super(registerDefaultEditors);
    }

    public FitBeanWrapperImpl(Class clazz) {
        super(clazz);
    }

    public FitBeanWrapperImpl(Object object, String nestedPath, Object rootObject) {
        super(object, nestedPath, rootObject);
    }

    public FitBeanWrapperImpl(Object object) {
        super(object);
    }

    public String getPropertyValueAsString(String propertyName) {
        Object value = getPropertyValue(propertyName);
        PropertyEditor propertyEditor = findCustomEditor(value.getClass(),
                propertyName);
        if (propertyEditor != null) {
            propertyEditor.setValue(value);
            return propertyEditor.getAsText();
        } else {
            return value.toString();
            
        }
    }
    
    public PropertyEditor findPropertyEditor(Class requiredType ) {
        if (findCustomEditor(requiredType, null)!=null) {
        return findCustomEditor(requiredType, null);
        } else {
            return getDefaultEditor(requiredType); 
        }
    }

}
